1. Technical Field
The present invention relates to a system and method for preventing multiple charges for a transaction in a payment system. More particularly, the present invention relates to a system and method for providing existing financial transaction results to an order system when the order system invokes a duplicate payment operation request.
2. Description of the Related Art
Software-based payment systems today rely upon common techniques to orchestrate financial transactions between external payment providers (e.g., credit card companies). A challenge found with these techniques, however, is that the software-based payment systems may not check for duplicate financial transaction requests. Even though payment systems may implement transaction-based techniques to minimize the possibility of such situations, problems arise when duplicate requests originate external to the payment system, such as from order systems that are connected to the payment system.
In such cases when a payment operation request is driven from a connected external component, the external component may not provide checks or transactional control for duplicate payment operation requests to the payment system. Hence, the payment system sends duplicate financial transaction requests to the external payment provider. For example, an order system payment may request a payment system to capture a deposit of $50 twice when the order system's original intent was for the deposit to be captured once.
Furthermore, a challenge found with double charging is that the external payment provider may not allow the payment system to retract an executed financial transaction request. Meaning, the payment provider may not allow executed financial transaction request “rollbacks” or cancellations. Therefore, even if the payment system discovers a double charge, the payment system has to manually send a new financial transaction request to the payment provider to credit the customer's account.
While specific solutions may be proposed for solving duplicate payment operation requests that are initiated by an end user (e.g., web-form double-submission, invoice double submission), a challenge found is that a payment system may also receive duplicate payment operation requests from order systems that are not directly initiated by an end user.
What is needed, therefore, is a system and method that prevents payment system from performing duplicate financial transaction requests to a payment provider when the payment system receives a duplicate payment operation request from an order system.